from rest_framework.pagination import LimitOffsetPagination
from rest_framework.response import Response


class DataLimitPagination(LimitOffsetPagination):
    """
    本质上帮助我们进行切片的处理：[0:N]
    """
    default_limit = 10  # 默认返回数据
    max_limit = 50  # 最大返回数据
    limit_query_param = 'limit'  # 前端查询的参数
    offset_query_param = 'offset'

    # offset 偏移数 GET http://127.0.0.1/four/students/?limit=100&offset=400   从下标为400的记录开始，取100条记录

    def get_offset(self, request):
        # 重写偏移数，修改成0
        return 0

    def get_paginated_response(self, data):
        # 修改返回的界面，把多余的去掉，比如总数据,上一页/下一页
        return Response(data)
